Computer applications are typically written to perform some defined, desired function. For example, computer applications exist for word processing, appointment scheduling, electronic mail, and Internet browsing. More specifically, business applications exist that are designed to perform or automate business functions, such as, for example, customer relationship management or supply chain management.
Although such computer applications may each be written from the ground up, it has been found that applications may better be created or implemented by utilizing pre-existing applications, or portions thereof. For example, the Common Object Request Broker Architecture (CORBA) is an architecture that allows portions of applications known as objects to work together, even when the objects are written in different programming languages or are running on different operating systems. As a result, a programmer or other user of an application may gain access to, and use of, the data and functionality of many other applications.
In many situations, however, it is desirable to provide a user with access to an application's functionality, without necessarily exposing all of the data associated with the application. Moreover, it may be desirable to do so in a manner that requires little or no programming knowledge on the part of the user, and that minimizes computing resources required by the user.
In order to provide these and other uses and advantages, “application services,” or “services,” have been developed. For example, “Web services” are deployed over the Internet that are designed to provide a specific functionality to a user. For example, a developer of a website may wish to provide a stock quotation service on the website, or a travel reservation/confirmation function. Such functionality may be added to the website simply by providing access to pre-existing services, even though such services may be running behind a firewall and may themselves have access to data that must be inaccessible to users of the website (e.g., travel information of other users).